#include <stdio.h>
#include <stdlib.h>

void printArray(int N, double ** grid){
    printf("\n"); 
    for(int i=0; i<N; i++){
        printf("\n"); 
        for(int j=0; j<N; j++)
            printf("%1.1f  ", grid[i][j]);
    }
};

int main(char * argc, char * argv[])
{
    int N = atoi(argv[1]); 
    double ** grid = (double**)malloc(sizeof(double*)*N);
    for(int i=0; i<N; i++){
        grid[i] = (double*)malloc(sizeof(double)*N);
    }

    for(int i=0; i<N; i++)
        for(int j=0; j<N; j++)
            grid[i][j] = 0; 

    int chr; 
    printArray(N, grid); 
    

    int x, y;
    x = 0;
    y = 0; 
    for(int l=0; l<N/2; l++){
        printf("\nLAYER: %d\n", l);
        x = N/2 + l; 
        y = N/2 + l;
        
        // Left
        for(int i=0; i<(2*l+2); i++)
        {
            grid[y][x] = 4.444444444;
            x--; 
        } 
        x++;

        // Up
        for(int i=0; i<(2*l+1); i++)
        {
            y--;
            grid[y][x] = 4.444444444;
        } 
        

        // Right
        for(int i=0; i<(2*l+1); i++)
        {
            x++; 
            grid[y][x] = 4.444444444;
        } 
        

    
        // Down
        for(int i=0; i<(2*l); i++)
        {
            y++;
            grid[y][x] = 4.444444444;
        } 

        printArray(N, grid); 
    }
     
    

    

    printf("\n\n\n"); 
    return 0; 
} 
